Currently, UpdateDriver::parse() has a Status return type and can return an error Status, but it can also propagate exceptions from UpdateDriver::parseUpdateExpression(). Because we are moving towards exception throwing for indicating errors, we should modify UpdateDriver::parse() so that it returns void and uasserts at places where it currently returns an error.
As far as we know, UpdateDriver::parse() call sites behave correctly in cases where exceptions are thrown, but we should probably audit them anyway when making this change.