docs: def add_data_to_attribute(scenario_id, resource_attr_id, dataset,**kwargs):
      """
          Add data to a resource scenario outside of a network update
      """
      user_id = kwargs.get('user_id')
  
      _check_can_edit_scenario(scenario_id, user_id)
  
      scenario_i = _get_scenario(scenario_id, user_id)
  
      try:
          r_scen_i = db.DBSession.query(ResourceScenario).filter(
                                  ResourceScenario.scenario_id==scenario_id,
                                  ResourceScenario.resource_attr_id==resource_attr_id).one()
          log.info("Existing resource scenario found for %s in scenario %s", resource_attr_id, scenario_id)
      except NoResultFound:
          log.info("No existing resource scenarios found for %s in scenario %s. Adding a new one.", resource_attr_id, scenario_id)
          r_scen_i = ResourceScenario()
          r_scen_i.scenario_id      = scenario_id
          r_scen_i.resource_attr_id = resource_attr_id
          scenario_i.resourcescenarios.append(r_scen_i)
  
      data_type = dataset.type.lower()
  
      value = dataset.parse_value()
  
      dataset_metadata = dataset.get_metadata_as_dict(user_id=kwargs.get('user_id'),
                                                      source=kwargs.get('source'))
      if value is None:
          raise HydraError("Cannot set value to attribute. "
              "No value was sent with dataset %s", dataset.id)
  
      data_hash = dataset.get_hash(value, dataset_metadata)
  
      assign_value(r_scen_i, data_type, value, dataset.unit_id, dataset.name,
                            metadata=dataset_metadata, data_hash=data_hash, user_id=user_id)
  
      db.DBSession.flush()
      return r_scen_i