What exactly is myclass in this context? Just a AR::Base based class? I execute SQL with ActiveRecord::Base.connection.execute(), and it keeps it within a transaction. If you need to be sure, check out log/ development.log in your project dir, and see what SQL it generates. You should see BEGIN; and COMMIT: around the block of statements.