StartTransaction signals the start of a transaction in autocommit mode. It should be implemented as submitting the SQL statement "BEGIN" or "START TRANSACTION", as does the PostgreSQL backend. The framework now sets the autocommit mode to false when a transaction is started. Still, starting a transaction and setting the autocommit mode are conceptually different. The current implementation of Session::begin() would for MySQL just set the autocommit mode to false twice.