ExecuteNonQuery всегда возвращает количество строк, затронутых для LAST-вставки, обновления или удаления, выполненных в вашей транзакции. Вам не нужно возвращаться (1) или возвращаться (0).
Если вы выполняете кучу удалений в транзакции, и она терпит неудачу, то генерируется SqlException, поэтому на самом деле нет необходимости возвращать результат как таковой. Просто поймайте исключение и обработайте его.
И чтобы ответить на ваш вопрос, если желаемый результат - это количество затронутых записей последнего выполненного оператора, тогда лучше всего использовать ExecuteNonQuery. Если вам нужен какой-то другой более конкретный результат, тогда лучше всего использовать SqlCommand с возвращаемым SqlParameter и возвращать конкретное значение в возвращаемом параметре.