Qué tiene de malo mi declaración de actualización con una unión en Oracle?

Estoy trabajando con unOrácul 10g Base de datos.

Tengo las siguientes dos tablas:

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

Estas dos tablas se unen utilizando el campo ID_DEBTOR.

Quiero actualizar el valor T_ELEMENT.INSURER con el T_DEBTOR.HEADER asociado solo si HEADER no es nulo. En otras palabras

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

Intenté usar la siguiente 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 funciona para todos los elementos vinculados a deudores que tienen un HEADER no nulo. Sin embargo, cuando T_DEBTOR.HEADER es nulo, esta consulta establece T_ELEMENT.INSURER en nulo, lo que no es correcto.

es decir

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

¿Qué tiene de malo mi consulta?

Edit, con respecto a la respuesta de Brian Storrar:

Lo que quiero hacer es algo así:

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;