Provavelmente a tabela é criada com o mecanismo de armazenamento MyISAM como padrão. O mecanismo de armazenamento MyISAM não suporta transações.
Criar tabela
CREATE TABLE a ( id SERIAL PRIMARY KEY) ENGINE = MYISAM;
Consulta
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Resultado
conta(*)
1
Fazendo a tabela InnoDB
Consulta
ALTER TABLE a ENGINE=INNODB;
Consulta
DELETE FROM a;
SET autocommit = 0;
START TRANSACTION;
INSERT INTO a(id) VALUES(1);
ROLLBACK WORK;
SELECT COUNT(*) FROM a;
Resultado
count(*)
----------
0