15.16.2. Starting a Transaction
A transaction is started by the storage engine in response to a
call to either the start_stmt() or
external_lock() functions.
If there is no active transaction, the storage engine must start
a new transaction and register the transaction with the MySQL
server so that ROLLBACK or
COMMIT can later be called.