How to "cascade delete" children without deleting parent?
Simply re-insert deleted records:

WITH cte AS ( DELETE
              FROM parent
              WHERE {conditions}
              RETURNING * )
INSERT INTO parent
SELECT *
FROM cte;


fiddle