Fala João! Tudo bem?
É quase isso, o try precisa de um catch ou um finally, não necessariamente um catch sempre.
Repare que a sintaxe que ele utilizou no momento em que rodou o código sem o catch é diferente do try que ele estava utilizando antes.
Do ponto de vista de sintaxe um try-with-resources (o que ele rodou) não é a mesma coisa que um try e por isso é possível executá-lo.
Na prática, com essa sintaxe e com a classe dele assinando a interface AutoCloseable é como se o finally estivesse implícito no try, ou seja, ele está lá e vai executar o método close(). Não é bem isso que acontece, mas é um jeito fácil de entender o que está acontecendo. Imagine que no exemplo dele, como a conexão já se Auto Fecha não faria sentido ter um finally fechando a conexão.
Mas, mesmo com o try-with-resources você ainda pode colocar seu bloco finally se assim desejar.