Io lo farei in questo modo, metterei il vincolo UNIQUE(nome, colore) nella tabella, e farei comunque l'inserimento con
@ $r = mysql_query($query);
Per verificare se l'inserimento è avvenuto oppure no basta un controllo con
codice:
 
if (1 == mysql_affected_rows())  {
  // avvenuto
}
else {
  // non avvenuto
}
D'altronde la clausola UNIQUE serve proprio a questo, inoltre la cosa è più performante in quanto il DBMS si crea un indice sui campi proprio per evitare duplicati.

Mai fare in in un linguaggio di programmazione quello che può essere implementeto a livello database.