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

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)