def METHOD_NAME(self):
    """
    Edit an existing language or create when not found
    :raises atramhasis.errors.ValidationError: If the provided json can't be validated
    """
    l_id = self.request.matchdict['l_id']
    json_body = self._get_json_body()
    json_body['id'] = l_id
    try:
        language = self.languages_manager.get(l_id)
        validated_json_language = self._validate_language(json_body, False)
        language.name = validated_json_language['name']
    except NoResultFound:
        validated_json_language = self._validate_language(json_body, True)
        language = Language(id=validated_json_language['id'], name=validated_json_language['name'])
    language = self.languages_manager.save(language)
    self.request.response.status = '200'
    return {'id': language.id, 'name': language.name}