Kyle,
You can easily have a condition variable check your released bit and executing custom code on the true condition.
Tim has posted before on how to properly update another table, using a new transaction scope and proper LockHints.
using(var txScope = IceContext.CreateDefaultTransactionScope()) {
        var order = Db.OrderHed.With(LockHint.UpdLock).Where(o => o.Company == Session.CompanyID && o.OrderNum == orderNum).FirstOrDefault();
        order.DecorType_c = quote.DecorType_c;
        order.BldgType_c = quote.BldgType_c;
        Db.Validate();
        txScope.Complete();
    }
Of course, this just needs a few changes like the table and which fields you need to update.