It seems like you can achieve all you need with transactions using only BEGIN; ROLLBACK and COMMIT;. Are there certain scenarios that require using autocommit? Does calling BEGIN; set autocommit to false? Does calling COMMIT; set autocommit to true?
Share
autocommit can be set per session or globally. No scenario that require autocommit (not all RDMS support auto-commit mode). In my opinion, the reason why autocommit is presented and true by default is because MyISAM engine does not support transactions at all, so to alleviate porting applications written for MyISAM they mimic the same behaviour.
From mysql documentation