Get a real query plan for EXPLAIN DELETE
You need to run EXPLAIN (ANALYZE, BUFFERS).
Beware that that actually executes the DELETE, so run it in a transaction and ROLLBACK afterwards.
That will show you information about foreign key constraints unless they are deferred, in which case they are executed at commit time.

I'm still curious if it's possible to get costs of a failed query.

In this case, the costs will be somewhere between the costs of the index scan (after which the trigger for the foreign key starts) and the total costs. It depends if the conflicting row is found early or late.