What database are you using? Maybe it doesn’t support transactions. If it’s MySQL, make sure the tables are created using InnoDB engine, not MyISAM.
Oh I just noticed you create an extra connection. AR used the connection defined in ‘db’ component of your application, not just any connection you create. If you want to use a different connection please override the getDbConnection method.