<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def experiments_predictions_upsert_property(self, experiment_id, run_id, properties):
 """Upsert property of a prodiction for an experiment. Raises ValueError if given property dictionary results in an illegal operation. Parameters experiment_id : string Unique experiment identifier run_id : string Unique model run identifier properties : Dictionary() Dictionary of property names and their new values. Returns ------- ModelRunHandle Handle for updated object of None if object doesn't exist """

        # Get predition to ensure that it exists. Ensures that the combination
        # of experiment and prediction identifier is valid.
        if self.experiments_predictions_get(experiment_id, run_id) is None:
            return None
        # Return result of upsert for identifier model run
        return self.predictions.upsert_object_property(run_id, properties)