PostgreSQLの明示的ロック

SQL テーブルレベル 行レベル
SELECT FOR UPDATE ROW SHARE 行レベルロック獲得
UPDATE, INSERT, DELETE ROW EXCLUSIVE 行レベルロック獲得

ROW SHAREとROW EXCLUSIVE は競合関係にないので、テーブルレベルでは上記SQL文は競合しない。

行レベルではもちろん競合する。