Вы не сказали откат. JNK показывает, как выполнить попытку Catch для отката транзакции в случае обнаруживаемой ошибки. Однако в этом случае с неправильным SQL, он не будет откатывать в любом случае, потому что это ошибка, которую нельзя отследить. У вас должен быть правильный синтаксис в SQl, чтобы транзакции работали правильно, и это одна из причин, по которой динамический SQl может быть очень опасным, поскольку невозможно полностью протестировать.
В любом случае, создавать таблицы на лету - это плохая практика. Если вы хотите что-то временно, используйте временную таблицу или переменную таблицы, не создавайте постоянную таблицу, от которой вы ожидаете откат создания, если действие не выполнено.