No, .. el "INSERT" no tiene estructuras condicionales (WHERE) en SQL.
Lo que debes hacer es una consulta SQL por ese criterio (datos que no quieres que se repitan) y si el resultado de la busqueda es = 0 . .haces tu INSERT y si es =1 .. no haces el INSERT.
No indicas que BBDD usas .. Mysql? cual? ...
Si hablamos de Mysql, en esta tienes desde la función de SQL nativa de Mysql como "COUNT()" .. que te entrega UN registro de resultado con el valor de los registros encontrados bajo las concidiciones (WHERE ..) que establezcas .. hasta la solución PHP que es el uso de la función: mysql_num_rows() .. la cual "cuenta" el total de resultados arrojados por tu consulta. Como se espera entre 0 y 1 resultados .. realmente aquí dá un poco igual que opción tomar.
Sería algo tipo:
Código PHP:
// etc ..
$resultado="SELECT * FROM tabla WHERE campo='".$dato."'";
if (mysql_num_rows($resultado) == 0){
// haces tu INSERT
} else {
// Registro ya existe ... tu veras que haces.
}
Un saludo,