Rollbacks sollten immer von der Clientanwendung gehandhabt werden, nicht die DB. Der Client kann viele verschiedene Operationen als einzelne "Arbeitseinheit" ausführen, daher sollte der Client die Kontrolle darüber haben, wann diese Arbeit in die Datenbank geschrieben oder zurückgesetzt wird.
Referenzen
Sie können sich auf diesen hilfreicher Link
von Tom Kyte, dem dieses Problem so sehr am Herzen liegt, dass er sogar vorschlägt, Commit/Rollback aus PL/SQL zu entfernen (Oracles prozedurale Sprache; ich weiß, dass Ihre DB mysql ist, aber das Konzept bleibt dasselbe).