def transaction_start(self, name):
if not name:<EOL><INDENT>raise ValueError("<STR_LIT>")<EOL><DEDENT>self.transaction_count += <NUM_LIT:1><EOL>logger.debug("<STR_LIT>".format(self.transaction_count, name))<EOL>if self.transaction_count == <NUM_LIT:1>:<EOL><INDENT>self._transaction_start()<EOL><DEDENT>else:<EOL><INDENT>self._transaction_started(name)<EOL><DEDENT>return self.transaction_count<EOL>
start a transaction

this will increment transaction semaphore and pass it to _transaction_start()