Първо, ако стойностите са еднакви, MySQL няма да актуализира реда, така че броят на засегнатите редове ще бъде 0.
Решение на този проблем:
$query="SELECT count(*) as cnt FROM `songs` WHERE `music_name`='$name', `price`='$price' AND `genre`=$genre" ;
/****get count from the query******/
if(count > 0 ) {
//update the table row
}
else{
//insert the table row
}