Consider
# 1
CREATE TABLE catalog.t (id INTEGER, name VARCHAR);
# 2
INSERT INTO catalog.t VALUES (1, 'con1'); -- 2
If the t has been appended to just before statement (2) commits, the insert does not fail, but instead overwrites the concurrent snapshot.
This is visible particularly when transactions are used - if an empty table is committed to outside the transaction, you'd expect the transaction commit to fail, but it instead succeeds, overwriting the table (+ leaving it with duplicate sequence numbers).
Fixed by #630.