Это зависит от того, как вы выполняете транзакцию со стороны PHP.
Если вы используете простую функцию mysql_query
для отдельного запуска каждого оператора транзакции и если какой-либо запрос завершается неудачно, транзакция никогда не откатывается.
Если вы создаете транзакцию в хранимой процедуре и вызываете эту хранимую процедуру из PHP. Изменения будут отменены в случае сбоя любого запроса в транзакции.