diff --git a/.rubocop_todo/rails/save_bang.yml b/.rubocop_todo/rails/save_bang.yml
index 8f2be251dc5c1f80cae0266eb315bf9e18e5013c..62f8951401dd9c0267059afc0798dcc7d0b0123a 100644
--- a/.rubocop_todo/rails/save_bang.yml
+++ b/.rubocop_todo/rails/save_bang.yml
@@ -70,9 +70,3 @@ Rails/SaveBang:
   - spec/lib/gitlab/import_export/snippets_repo_restorer_spec.rb
   - spec/lib/gitlab/import_export/snippets_repo_saver_spec.rb
   - spec/lib/gitlab/import_export/uploads_manager_spec.rb
-  - spec/lib/gitlab/import_export/uploads_saver_spec.rb
-  - spec/lib/gitlab/import_export/wiki_restorer_spec.rb
-  - spec/lib/gitlab/lets_encrypt/client_spec.rb
-  - spec/lib/gitlab/middleware/go_spec.rb
-  - spec/lib/gitlab/shard_health_cache_spec.rb
-  - spec/mailers/notify_spec.rb
diff --git a/spec/lib/gitlab/import_export/uploads_saver_spec.rb b/spec/lib/gitlab/import_export/uploads_saver_spec.rb
index 8e9be209f8967fc899147fc5f738d51ef5a5e296..bfb18c58806381cd347a363d24570abaf1703ee7 100644
--- a/spec/lib/gitlab/import_export/uploads_saver_spec.rb
+++ b/spec/lib/gitlab/import_export/uploads_saver_spec.rb
@@ -32,7 +32,7 @@
       end
 
       it 'copies the uploads to the export path' do
-        saver.save
+        saver.save # rubocop:disable Rails/SaveBang
 
         uploads = Dir.glob(File.join(shared.export_path, 'uploads/**/*')).map { |file| File.basename(file) }
 
@@ -54,7 +54,7 @@
       end
 
       it 'copies the uploads to the export path' do
-        saver.save
+        saver.save # rubocop:disable Rails/SaveBang
 
         uploads = Dir.glob(File.join(shared.export_path, 'uploads/**/*')).map { |file| File.basename(file) }
 
diff --git a/spec/lib/gitlab/lets_encrypt/client_spec.rb b/spec/lib/gitlab/lets_encrypt/client_spec.rb
index f128431868789af0b64c512fc81de4ef2200fdba..1baf8749532743394e317ba3d60c492633f5bd68 100644
--- a/spec/lib/gitlab/lets_encrypt/client_spec.rb
+++ b/spec/lib/gitlab/lets_encrypt/client_spec.rb
@@ -42,7 +42,7 @@
     context 'when private key is saved in settings' do
       let!(:saved_private_key) do
         key = OpenSSL::PKey::RSA.new(4096).to_pem
-        Gitlab::CurrentSettings.current_application_settings.update(lets_encrypt_private_key: key)
+        Gitlab::CurrentSettings.current_application_settings.update!(lets_encrypt_private_key: key)
         key
       end
 
diff --git a/spec/lib/gitlab/middleware/go_spec.rb b/spec/lib/gitlab/middleware/go_spec.rb
index 1ef548ab29bdc54cf2a10a9a122f5c0941427f5e..bc1d53b2ccb747fe631a7dface9752066004d46d 100644
--- a/spec/lib/gitlab/middleware/go_spec.rb
+++ b/spec/lib/gitlab/middleware/go_spec.rb
@@ -100,7 +100,7 @@
 
                   context 'without access to the project', :sidekiq_inline do
                     before do
-                      project.team.find_member(current_user).destroy
+                      project.team.find_member(current_user).destroy!
                     end
 
                     it_behaves_like 'unauthorized'
diff --git a/spec/lib/gitlab/shard_health_cache_spec.rb b/spec/lib/gitlab/shard_health_cache_spec.rb
index 5c47ac7e9a08614030f5950774523e5459d0093c..0c25cc7dab5d8c46c692a6b64a86a7cdbecbbd2d 100644
--- a/spec/lib/gitlab/shard_health_cache_spec.rb
+++ b/spec/lib/gitlab/shard_health_cache_spec.rb
@@ -6,7 +6,7 @@
   let(:shards) { %w(foo bar) }
 
   before do
-    described_class.update(shards)
+    described_class.update(shards) # rubocop:disable Rails/SaveBang
   end
 
   describe '.clear' do
@@ -24,7 +24,7 @@
 
     it 'replaces the existing set' do
       new_set = %w(test me more)
-      described_class.update(new_set)
+      described_class.update(new_set) # rubocop:disable Rails/SaveBang
 
       expect(described_class.cached_healthy_shards).to match_array(new_set)
     end
@@ -36,7 +36,7 @@
     end
 
     it 'returns 0 if no shards are available' do
-      described_class.update([])
+      described_class.update([]) # rubocop:disable Rails/SaveBang
 
       expect(described_class.healthy_shard_count).to eq(0)
     end
diff --git a/spec/mailers/notify_spec.rb b/spec/mailers/notify_spec.rb
index 44cb18008d2b775fccbc501af99aa6ebc8c5fd78..0fbdc09a20665285b954ec28d0ab6bf350323f72 100644
--- a/spec/mailers/notify_spec.rb
+++ b/spec/mailers/notify_spec.rb
@@ -213,7 +213,7 @@
         subject { described_class.issue_due_email(recipient.id, issue.id) }
 
         before do
-          issue.update(due_date: Date.tomorrow)
+          issue.update!(due_date: Date.tomorrow)
         end
 
         it_behaves_like 'an answer to an existing thread with reply-by-email enabled' do
@@ -1229,7 +1229,7 @@ def create_note
         end
 
         context 'when a comment on an existing discussion' do
-          let(:first_note) { create(model) }
+          let(:first_note) { create(model) } # rubocop:disable Rails/SaveBang
           let(:note) { create(model, author: note_author, noteable: nil, in_reply_to: first_note) }
 
           it 'contains an introduction' do
@@ -1505,7 +1505,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
 
         context 'member is not created by a user' do
           before do
-            group_member.update(created_by: nil)
+            group_member.update!(created_by: nil)
           end
 
           it_behaves_like 'no email is sent'
@@ -1513,7 +1513,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
 
         context 'member is a known user' do
           before do
-            group_member.update(user: create(:user))
+            group_member.update!(user: create(:user))
           end
 
           it_behaves_like 'no email is sent'
@@ -1737,7 +1737,7 @@ def invite_to_group(group, inviter:, user: nil, tasks_to_be_done: [])
       stub_config_setting(email_subject_suffix: 'A Nice Suffix')
       perform_enqueued_jobs do
         user.email = "new-email@mail.com"
-        user.save
+        user.save!
       end
     end