alter table widgets
  add constraint sft_1_thru_n_xor_check (
   (tabela_specyficzna1_id is not null)::integer +
   (tabela_specyficzna2_id is not null)::integer +
     ...
   (tabela_specyficznan_id is not null)::integer = 1);

