Siccome non sono veggente, dovresti dirmi che errore ti dà, altrimenti non posso aiutarti
Nessun errore.. semplicemente si comporta come se il "BEGIN TRANSACTION" e il "COMMIT" non ci fossero!! In altre parole, non tratta le query come una transazione ma come singole query. In altre parole ancora, se la 1a query va a buon fine ma la 2a query va in errore, la prima viene eseguita comunque, anzichè annullarle entrambe!!

Non so più cosa fare...

PS: sto usando PHP 5 e MySql 5.