Read Uncommitted, Read Committed, Repeatable Read, Serializable. В Go уровень задают при начале транзакции: db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelSerializable}). По умолчанию в Postgres - Read Committed. Более высокий уровень - меньше аномалий, но больше блокировок и откатов. Для большинства сценариев достаточно уровня по умолчанию.
tx, err := db.BeginTx(ctx, &sql.TxOptions{Isolation: sql.LevelRepeatableRead})