Reject records that have IDs which are already in store

When app has a push-data (i.e. websocket) connection, this could happen: push update comes before the actual save() call is done, which saves another copy of the record when it finally gets an ID from the backend.