def update_feature(self, dataset, fid, feature):
        """Inserts or updates a feature in a dataset.
           
        Parameters
        ----------
        dataset : str
            The dataset id.

        fid : str
            The feature id.
               
            If the dataset has no feature with the given feature id, 
            then a new feature will be created.

        feature : dict
            The GeoJSON feature object.

            This should be one individual GeoJSON feature and not a 
            GeoJSON FeatureCollection.

        Returns
        -------
        request.Response
            The response contains a GeoJSON representation of the new or updated feature.
        """
        
        uri = URITemplate(
            self.baseuri + '/{owner}/{did}/features/{fid}').expand(
                owner=self.username, did=dataset, fid=fid)
        return self.session.put(uri, json=feature)