updateReactionByKey
Atomically finds reactions by replacement's packetId + userId + emoji and updates every ownership-scoped copy, borrowing myNodeNum from each existing row. No-op if no match is found.
Atomically finds reactions by replacement's packetId + userId + emoji and updates every ownership-scoped copy, borrowing myNodeNum from each existing row. No-op if no match is found.