SQL Server - transações reverter em erro?

Temos aplicativo cliente que está executando algum SQL em um SQL Server 2005, como o seguinte:

BEGIN TRAN;
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
INSERT INTO myTable (myColumns ...) VALUES (myValues ...);
COMMIT TRAN;

É enviado por um longo comando de string.

Se uma das inserções falhar ou qualquer parte do comando falhar, o SQL Server reverterá a transação? Se não reverter, tenho que enviar um segundo comando para revertê-lo?

Eu posso dar detalhes sobre a API e o idioma que estou usando, mas acho que o SQL Server deve responder da mesma maneira para qualquer idioma.

questionAnswers(5)

yourAnswerToTheQuestion