Rails4 トランザクション内で故意にエラーを起こす

トランザクション内で自分でチェックを行い、エラーがあった際にはロールバックしたかった。
トランザクション内で故意にエラーをおこすにはraiseを使うようだ。

class << self
  def add_grouping(group_id, user_ids)    
    begin
      self.transaction do
        user_ids.each do |user_id|
          user = User.find(user_id)
          if company_id != user.company_id
            raise  
          end
        
          grouping = self.new
          grouping.group_id = group_id
          grouping.user_id = user_id

          grouping.save!
        end
      end

      return true
    rescue
      return false
    end
  end
end        


参考:
ActiveRecord で rollback -- BONNOH FRACTION 14