beginsTransactions

Whether a statement that finds no transaction on the server opens one first.

On for as long as auto-commit is off. Turning it off sends nothing, and neither COMMIT nor ROLLBACK begins the next transaction, so the BEGIN has to come from somewhere: from here, ahead of the first statement that finds the server idle. A transaction that never runs a statement is never sent at all.