Sugeriría especificar el disparador para cada fila. Encuentro esto mucho más fácil.
Puedes hacer un conteo para ver si MovieStar.Name
el valor ya existe y luego inserte si no existe; eso es similar al enfoque que tienes arriba. Esto fallará si otro usuario inserta la estrella de cine entre el momento en que verifica y el momento en que inserta, pero probablemente sea lo suficientemente bueno para una tarea de clase. Hay enfoques aceptados que no fallan para esto, pero es posible que aún no los hayas cubierto en clase.
Prueba algo como esto; probablemente incorpore todo lo que has cubierto en clase hasta ahora:
CREATE OR REPLACE TRIGGER TestTrig
AFTER UPDATE OR INSERT ON STARSIN
FOR EACH ROW
DECLARE
movieStarCount NUMBER;
BEGIN
SELECT COUNT(*) INTO movieStarCount
FROM MovieStar
WHERE Name = :NEW.StarName;
IF movieStarCount = 0 THEN
INSERT INTO MovieStar (Name) VALUES (:NEW.StarName);
END IF;
END;