Yo encapsularía la lógica de las operaciones a BD en un componente COM y lo registraría en COM+ para que este se ocupara automáticamente de las transacciones (debes registrarlo en COM+ con la opción de "Transacción necesaria").
Si no quieres usar COM, desde ASP puedes declarar tu página transaccional poniendo como primera instrucción de la página: "<%@TRANSACTION=Required%>" y así forzaras que tu página se ejecute dentro de MTS (en NT4) o COM+ (en W2k).
Otra opción seria utilizando los metodos de BeginTransaction, CommitTransaction y RollbackTransaction del objeto connection de ADO, si es que utilizas ADO para tus consultas a la BD.