Você pode usar uma tabela temporária. Faça com que o aplicativo php insira tudo na tabela temporária e chame uma consulta com esse tipo de lógica.
insert into mainTable
(field1, field2, etc)
select field1, field2, etc
from tempTable
where (subquery to check for existing records goes here)
Ou você pode usar try/catch. Eu não sei a sintaxe do php, mas como muitas outras linguagens podem fazer esse tipo de coisa, eu esperaria que o php também fosse capaz.
try
code to insert record
catch
if the error code is the one for duplicate records, do nothing.
if it's something else, handle it accordingly.