Solution
test# \d parent
Table "public.parent"
Column │ Type │ Collation │ Nullable │ Default
════════╪═══════════════════╪═══════════╪══════════╪══════════════════════════════
id │ integer │ │ not null │ generated always as identity
name │ character varying │ │ │
Indexes:
"parent_name_key" UNIQUE CONSTRAINT, btree (name)
Referenced by:
TABLE "child" CONSTRAINT "child_pname_fkey" FOREIGN KEY (pname) REFERENCES parent(name)
test# \d child
Table "public.child"
Column │ Type │ Collation │ Nullable │ Default
════════╪═══════════════════╪═══════════╪══════════╪══════════════════════════════
id │ integer │ │ not null │ generated always as identity
pname │ character varying │ │ │
Foreign-key constraints:
"child_pname_fkey" FOREIGN KEY (pname) REFERENCES parent(name)
test# alter table child alter constraint child_pname_fkey deferrable;
ALTER TABLE
SET CONSTRAINTS
test# begin;
BEGIN
test#* set constraints child_pname_fkey deferred;
SET CONSTRAINTS
test#* update child set pname = 'Alice' where id = 1;
UPDATE 1
test#* update parent set name = 'Alice' where id = 1;
UPDATE 1
test#* commit;
COMMIT
test# alter table child alter constraint child_pname_fkey not deferrable;
ALTER TABLE
test#