def METHOD_NAME(self,
               data: gpd.GeoDataFrame,
               data_id: str,
               **write_params) -> str:
    # TODO: implement me correctly,
    #  this is not valid for shapefile AND geojson
    assert_instance(data, (gpd.GeoDataFrame, pd.DataFrame), 'data')
    fs, root, write_params = self.load_fs(write_params)
    is_local = is_local_fs(fs)
    if is_local:
        file_path = data_id
    else:
        _, file_path = new_temp_file()
    data.to_file(file_path, driver=self.get_driver_name(), **write_params)
    if not is_local:
        fs.put_file(file_path, data_id)
    return data_id