# File lib/tapkit/access/adapters/csv.rb, line 521
                def commit
                        new_row = []
                        @inserts.each do |expr|
                                expr.row.each do |key, value|
                                        new_row[key] = value
                                end
                                rows(expr.entity.external_name) << new_row
                                @rows_affected += 1
                        end

                        @updates.each do |expr|
                                rows = rows expr.entity.external_name
                                to_update = rows_hash_for_expr expr
                                to_update.each do |old_row, diff_row|
                                        index = rows.index old_row
                                        new_row = old_row.dup
                                        diff_row.each do |key, value|
                                                new_row[key] = value
                                        end
                                        rows[index] = new_row
                                end
                                @rows_affected += 1
                        end

                        @deletes.each do |expr|
                                rows = rows expr.entity.external_name
                                to_delete = rows_hash_for_expr expr
                                to_delete.each_key do |row|
                                        rows.delete row
                                end
                                @rows_affected += 1
                        end

                        @rows.each do |entity, new_rows|
                                write(entity, new_rows)
                        end

                        clear
                end