Rails 2.3 : Nested Transactions

transaction(:requires_new => true)
If you want a transaction to be nested, you must explicitly add the :requires_new option.

User.transaction do
  User.create(:username => 'Admin')
  User.transaction(:requires_new => true) do
    User.create(:username => 'Regular')
    raise ActiveRecord::Rollback
  end
end
User.find(:all) # => Returns only Admin

Ruby on Rails 2.3 Release Notes - 4.2 Nested Transactions
Module: ActiveRecord::Transactions::ClassMethods