def METHOD_NAME(obj_id, user_id, url):
    """Query MPC for a given object.
    obj_id : str
        Object ID
    user_id : int
        SkyPortal ID of User posting the MPC result
    url : str
        MPC query URL
    """
    if Session.registry.has():
        session = Session()
    else:
        session = Session(bind=DBSession.session_factory.kw["bind"])
    log(f'Querying MPC for {obj_id}: {url}')
    try:
        user = session.query(User).get(user_id)
        obj = session.scalars(Obj.select(user).where(Obj.id == obj_id)).first()
        requests_session = requests.Session()
        response = requests_session.get(url)
        if re.findall("The following objects,.*", response.text):
            responseSplit = response.text.split("(1)")[-1].split(" ")
            mpc_name = list(filter(None, responseSplit))[0]
            log(f'{obj_id}: identified MPC name {mpc_name}')
            obj.is_roid = True
            obj.mpc_name = mpc_name
            session.commit()
        elif re.findall("No known minor planets,.*", response.text):
            log(f'{obj_id}: No known minor planets')
            obj.is_roid = False
            session.commit()
        else:
            log(f'Message from MPC for {obj_id} not parsable: {response.text}')
        flow = Flow()
        flow.push(
            '*',
            'skyportal/REFRESH_SOURCE',
            payload={'obj_key': obj.internal_key},
        )
    except Exception as e:
        log(f"Error checking MPC for {obj_id}: {(str(e))}")
        session.rollback()
    finally:
        session.close()
        Session.remove()