In the "create" case `:name` is be added to the newly-created Level by `level.update(row)` a few lines down (the commit fails validation on create, but succeeds on update). I think I tried including `Level.create_with(name: row.delete(:name))...` at some point and decided it was unnecessary, but now I think it might help make it more readable.
After digging into it a bit I also just learned that first_or_create has been deprecated in favor of find_or_create_by, so I'll adjust this line accordingly.