Provide :touch option to save() to accommodate saving without updating t...

...imestamps. [#18202]
How about instead of having options get passed to the predicate, we write this as:

```ruby
def _update_record(touch: true)
  if touch && should_record_timestamps?
```