UITableView unexpectedly bounces with beginUpdates()/endUpdates()/performBatchUpdates() using NSFetchedResultsController and CoreData

UITableView unexpectedly bounces with beginUpdates()/endUpdates()/performBatchUpdates() using NSFetchedResultsController and CoreData when the number of rows fill the view.

It's pretty simple to reproduce.

- Create a new project from the Master-Detail App Template (with CoreData).

- In the storyboard, remove the "showDetail" segue. (we don't need the detail view)

- In MasterViewController, replace segue func prepare() with :

override func tableView(_ tableView: UITableView, didSelectRowAt indexPath: IndexPath) {
    let event = fetchedResultsController.object(at: indexPath)
    let timestamp = event.timestamp
    event.timestamp = timestamp // The idea is to simply update the Event entity.
  }

Launch the app (in iOS devices or Simulators), and add enough rows to fill the view (in iPhone SE, it 11 rows).

Scroll down the view, and select any row. The view WILL rapidly BOUNCE up and down.

Is that a bug, or is there an issue with the code ?