Återställningar ska alltid hanteras av klientapplikationen, inte DB. Klienten kan utföra många olika operationer som en enda "enhet av arbete", därför bör klienten ha kontroll över när det arbetet läggs till databasen eller rullas tillbaka.
Referenser
Du kan hänvisa till denna användbar länk
från Tom Kyte, som känner så starkt för den här frågan att han till och med föreslår att du tar bort commit/rollback från PL/SQL (Oracles procedurspråk; jag vet att din DB är mysql, men konceptet förblir detsamma).