1.- UPDATE retorna
false cuando no se puede ejecutar.
2.- Lo normal seria usar INSERT INTO ...
ON DUPLICATE KEY UPDATE
3.- Esa primary key con todos los campos no lo veo muy claro
Fijate
1, 2, 'Historia', 3, 9
1, 2, 'Historia', 3, 10
esos dos registros son perfectamente posibles. Solo se producira el DUPLICATE KEY si intentas entrar dos veces la misma nota para el mismo alumno, pero luego que sentido tiene actualizar (UPDATE) nada si es todo lo mismo.
Si cada alumno puede tener varias notas por trimestre y asignatura te podria servir (Si un alumno saca dos 9 no se los vas a contar....), pero si intentas usar un update no si es lo que quieres
Si la PRIMARY KEY fuera
te asegurarias que solo haya una nota por alumno,curso,asignatura y trimestre.