def METHOD_NAME(
    self,
    obj_id,
    obj,
    *,
    user,
    _expect_status: Optional[int] = None,
    _check_uploaded: bool = True,
    **kwargs,
):
    _expect_status = _expect_status or HTTPStatus.CREATED
    url = f"{obj}/{obj_id}/annotations"
    response = post_method(user, url, data=None, **kwargs)
    status = response.status_code
    # Only the first POST request contains rq_id in response.
    # Exclude cases with 403 expected status.
    rq_id = None
    if status == HTTPStatus.ACCEPTED:
        rq_id = response.json().get("rq_id")
        assert rq_id, "The rq_id was not found in the response"
    while status != _expect_status:
        assert status == HTTPStatus.ACCEPTED
        response = put_method(user, url, data=None, rq_id=rq_id, **kwargs)
        status = response.status_code
    if _check_uploaded:
        response = get_method(user, url)
        assert response.status_code == HTTPStatus.OK
        annotations = response.json()
        assert len(annotations["shapes"])