I rollback devono sempre essere gestiti dall'applicazione client, non il DB. Il client potrebbe eseguire molte operazioni diverse come una singola "unità di lavoro", pertanto, il client dovrebbe avere il controllo su quando quel lavoro viene trasferito al database o ripristinato.
Riferimenti
Puoi fare riferimento a questo link utile
da Tom Kyte, che è così convinto di questo problema da suggerire persino di rimuovere commit/rollback da PL/SQL (il linguaggio procedurale di Oracle; so che il tuo DB è mysql, ma il concetto rimane lo stesso).