-    my $q_taxkey_only     = qq|UPDATE acc_trans SET taxkey = ? WHERE acc_trans_id = ?|;
-    my $h_taxkey_only     = prepare_query($form, $dbh, $q_taxkey_only);
-
-    my $q_taxkey_chart_id = qq|UPDATE acc_trans SET taxkey = ?, chart_id = ? WHERE acc_trans_id = ?|;
-    my $h_taxkey_chart_id = prepare_query($form, $dbh, $q_taxkey_chart_id);
-
-    foreach my $entry (@corrections) {
-      if ($entry->{chart_id}) {
-        do_statement($form, $h_taxkey_chart_id, $q_taxkey_chart_id, $entry->{taxkey}, $entry->{chart_id}, $entry->{acc_trans_id});
-      } else {
-        do_statement($form, $h_taxkey_only, $q_taxkey_only, $entry->{taxkey}, $entry->{acc_trans_id});
+    SL::DB->client->with_transaction(sub {
+      my $q_taxkey_only     = qq|UPDATE acc_trans SET taxkey = ? WHERE acc_trans_id = ?|;
+      my $h_taxkey_only     = prepare_query($form, $dbh, $q_taxkey_only);
+
+      my $q_taxkey_chart_id = qq|UPDATE acc_trans SET taxkey = ?, chart_id = ? WHERE acc_trans_id = ?|;
+      my $h_taxkey_chart_id = prepare_query($form, $dbh, $q_taxkey_chart_id);
+
+      foreach my $entry (@corrections) {
+        if ($entry->{chart_id}) {
+          do_statement($form, $h_taxkey_chart_id, $q_taxkey_chart_id, $entry->{taxkey}, $entry->{chart_id}, $entry->{acc_trans_id});
+        } else {
+          do_statement($form, $h_taxkey_only, $q_taxkey_only, $entry->{taxkey}, $entry->{acc_trans_id});
+        }