Не нужно тут ничего мудрить делай 3 операции и все. Не ориентируйся на количество операций. Смотри на стоимость их выполнения.
При POST запросе первым делом удалять все данные по id студенту/предмету и потом записывать данные с запроса (получается 2 операции).
Представь сколько за год у студента будет оценок и при каждом редактировании их все удалять? А если много пользователей начнут редактировать одновременно? Ждать пока каждый удалит все свои оценки, а потом опять запишет? Имхо дурацкий подход.