When insertRowsAtIndexPaths is called, the emptyDataSetShouldDisplay(... doesn't trigger, so cells are added to the table and the empty data set image remains.
Workaround:
self.beginUpdates()
self.insertRows(at: indexPaths, with: .right)
self.endUpdates()
Hope someone can give this a quick look-see!