def METHOD_NAME(model: Models, pose: Pose, mesh_parameters: None | MeshParameters = None) -> None:
    """Adds arbitrary collision model to the collision scene.
    :param model: Box, Sphere, Cylinder, Mesh
    :param pose: Pose of the collision object.
    :param mesh_parameters: Some additional parameters might be specified for mesh collision model.
    :return:
    Example usage:
    >>> from arcor2.clients import scene_service
    >>> from arcor2.data.object_type import Box
    >>> from arcor2.data.common import Pose, Position, Orientation
    >>> box = Box("UniqueBoxId", 0.1, 0.1, 0.1)
    >>> scene_service.upsert_collision(box, Pose(Position(1, 0, 0), Orientation(0, 0, 0, 1)))
    """
    params = model.to_dict()
    model_type = model.type().value.lower()
    params[f"{model_type}Id"] = model.id
    del params["id"]
    if model.type() == Model3dType.MESH:
        params["meshFileId"] = params.pop("asset_id")
        if mesh_parameters:
            params.update(mesh_parameters.to_dict())
    rest.call(rest.Method.PUT, f"{URL}/collisions/{model_type}", body=pose, params=params)