If the user is scrolled down 20 messages on a table, and a new message comes in, calling [TLIndexPathUpdates -performBatchUpdatesOnTableView: withRowAnimation:] will insert rows at the top, pushing the other cells down. It can be confusing for a user to have the table scroll all of a sudden, so an option should be provided to suppress this behavior during row insertion.
This Stack Overflow answer describes one method for inserting rows at the top, and manually adjusting the table's contentOffset so the user never notices anything.