Generalnie nie. Druga transakcja to tylko wstawianie, więc o ile nie ma unikalnego sprawdzenia indeksu lub innego wyzwalacza, który musi mieć miejsce, dane można wstawić bezwarunkowo. W przypadku unikalnego indeksu (w tym klucza podstawowego) zablokuje się, jeśli obie transakcje aktualizują wiersze o tej samej wartości, np.:
-- Session 1 -- Session 2
CREATE TABLE t (x INT PRIMARY KEY);
BEGIN;
INSERT INTO t VALUES (1);
BEGIN;
INSERT INTO t VALUES (1); -- blocks here
COMMIT;
-- finally completes with duplicate key error
Sprawy są mniej oczywiste w przypadku aktualizacji, które mogą mieć wpływ na wstawienie przez inną transakcję. Rozumiem, że PostgreSQL nie obsługuje jeszcze "prawdziwej" serializacji w tym przypadku. Nie wiem, jak często jest obsługiwane przez inne systemy SQL.
Zobacz http://www.postgresql.org/docs/current/interactive/ mvcc.html