You have many clause of foreign keys in Oracle.
For example you can have the "on delete cascade" clause in you foreign key:
alter table WIFES
add foreign key (husbandId )
references HUSBANDS(id)
on delete cascade;
with this clause, you could delete rows of two table with only one delete.
So your procedure will be:
PROCEDURE remove_old_wifes() IS
BEGIN
DELETE FROM husbands WHERE id IN (SELECT husbandId FROM wifes WHERE age >= 60);
END;
If it's impossible for you to set the on delete cascade clause, you should use global temporary tables for example:
create table gtt_id( id number) on commit delete rows;
PROCEDURE remove_old_wifes() IS
BEGIN
insert into gtt_id SELECT husbandId FROM wifes WHERE age >= 60;
delete FROM wifes WHERE age >= 60
DELETE FROM husbands WHERE id IN (SELECT id FROM gtt_id);
END;