O que há de errado na minha declaração de atualização com uma associação ao Oracle?

Estou trabalhando com umOrácul 10g de banco de dado

Tenho as duas tabelas a seguir:

T_DEBTOR :
    - ID_DEBTOR
    - HEADER
T_ELEMENT :
    - ID_ELEMENT
    - ID_DEBTOR
    - INSURER

Estas duas tabelas são unidas usando o campo ID_DEBTO

Desejo atualizar o valor T_ELEMENT.INSURER com o T_DEBTOR.HEADER associado apenas se HEADER não for nulo. Em outras palavras

If T_DEBTOR.HEADER != null
    Then T_ELEMENT.INSURER = T_DEBTOR.HEADER
    Else T_ELEMENT.INSURER is not modified!

Tentei usar a seguinte consulta SQL:

update
    T_ELEMENT elt
    set elt.INSURER = (
        select HEADER
            from T_DEBTOR debtor
            where
                debtor.HEADER is not null
                and debtor.ID_DEBTOR = elt.ID_DEBTOR);

Esta consulta está funcionando para todos os elementos vinculados aos devedores que possuem um HEADER não nulo. No entanto, quando T_DEBTOR.HEADER for nulo, essa consulta definirá T_ELEMENT.INSURER como nulo, o que não está corret

ie:

If T_DEBTOR.HEADER != null
    Then T_ELEMENT.INSURER = T_DEBTOR.HEADER   --> This part is OK
    Else T_ELEMENT.INSURER is set to null      --> This part is NOT OK

O que há de errado com minha consulta?

Edit, sobre a resposta de Brian Storrar:

O que eu quero fazer é algo assim:

update
    T_ELEMENT elt
    set elt.INSURER = (
        select HEADER
            from T_DEBTOR debtor
            where
                debtor.HEADER is not null
                and debtor.ID_DEBTOR = elt.ID_DEBTOR)
    where debtor.HEADER is not null;