Pesquisando mais, parece-me que não há problemas em tratar exceções nos métodos, desde que o tratamento faça sentido. E, pensando bem, visto que esse comportamento de transferir é bem utilizado, acho que é até melhor tratá-lo no método para assim evitar um monte de try/catch em toda a parte do código que for fazer a transferência.
Quanto a minha dúvida do throws... foi mostrado mais adiante nas aulas que não existem checked exceptions no Kotlin.
"...Por mais que o Kotlin opere na JVM, não existem exceções checked no Kotlin."
Para quem veio do Java, sabe que checked exceptions são aquelas que são obrigadas a serem tratadas, seja com um bloco try/catch ou jogando novamente um throws para serem tratadas em outro nível da pilha.
Não temos então um throws para o Kotlin.