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.