I don't understand you. Why do you want to delete the parent (two-way delete as mentioned in the initial post) if you are planning to insert a new "child" row afterwards anyway? Why do you need a two-way delete at all then?
You could declare the constraints as deferred then you could do the delete and insert inside a single transaction (because the constraint is evaluated when you commit the transaction)