I'm using MySQL for my DB. Could that be the problem?
Probably. If you want to use transactional stuff you need to make sure you are using a database which supports them. Some of the MySQL database engines (including the default ISAM) amazingly don't. Create your table using one of the db engines that supports transactions and you should be OK.