Probabilmente la tabella viene creata con il motore di archiviazione MyISAM come predefinito. Il motore di archiviazione MyISAM non supporta le transazioni.
Crea tabella
CREATE TABLE a ( id SERIAL PRIMARY KEY) ENGINE = MYISAM;
Interroga
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Risultato
conta(*)
1
Realizzare il tavolo InnoDB
Interroga
ALTER TABLE a ENGINE=INNODB;
Interroga
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Risultato
count(*)
----------
0