前提
Pythonのmysql.connectorには、
self.conn.commit()
self.conn.rollback()
上記の、トランザクションのコミットもしくはロールバックのメソッドは存在します。
しかし、トランザクションの「開始」用のメソッドは存在しません。
存在しませんが、自動でトランザクションを開始してくれているわけではないので、自前で
トランザクションを開始させる必要があります。
実現方法
mysql.connector.cmd_query('START TRANSACTION')
これを起動することでOKです。(MySQL用のトランザクション開始クエリーをself.conn.cmd_query
メソッドで発行します)
おまけ
mysql.connector.cmd_queryは引数に指定した文字列のクエリを発行してくれるため便利です。
mysql.connector.cmd_query('SET innodb_lock_wait_timeout=1')
例えば、これを発行すると、トランザクションタイムアウトの時間を制御できます。