Ho fatto una banalissima prova in locale:
Codice PHP:
<?php
$error = false;
$connect = mysql_connect("localhost", "root", "root");
$db = mysql_select_db("prova", $connect);
$result = mysql_query("START TRANSACTION");
$result = mysql_query("INSERT INTO test (value) VALUES ('aaa')");
if ($error) {
exit;
}
$result = mysql_query("COMMIT");
?>
Se valorizzo $errore a true l'exit mi fa terminare lo script e la insert non viene eseguita, in caso contrario la insert va a buon fine, ma solamente dopo l'invocazione del COMMIT.