Olá Vinicius,
Entendo sua dúvida em relação ao código apresentado. Realmente, à primeira vista, pode parecer que o register deveria estar no bloco else e o put no bloco if.
Porém, é importante lembrar que o register é responsável por criar um novo registro, enquanto o put é responsável por atualizar um registro existente. Portanto, faz sentido que, ao editar um registro existente, o put seja utilizado e, ao criar um novo registro, o register seja utilizado.
Além disso, é importante lembrar que o código apresentado é apenas um exemplo e pode ser adaptado de acordo com as necessidades de cada projeto.
Espero ter ajudado a esclarecer sua dúvida. Bons estudos!