def METHOD_NAME(user_id: str, jobs: List[dict], fail_when_over_quota=True) -> List[dict]:
    table = DYNAMODB_RESOURCE.Table(environ['JOBS_TABLE_NAME'])
    request_time = format_time(datetime.now(timezone.utc))
    max_jobs, previous_jobs, remaining_jobs = get_quota_status(user_id)
    has_quota = max_jobs is not None
    if has_quota:
        assert previous_jobs is not None
        assert remaining_jobs is not None
    if has_quota and len(jobs) > remaining_jobs:
        if fail_when_over_quota:
            raise QuotaError(f'Your monthly quota is {max_jobs} jobs. You have {remaining_jobs} jobs remaining.')
        jobs = jobs[:remaining_jobs]
    priority_override = dynamo.user.get_priority(user_id)
    priority = _get_job_priority(priority_override, has_quota)
    prepared_jobs = [
        {
            'job_id': str(uuid4()),
            'user_id': user_id,
            'status_code': 'PENDING',
            'execution_started': False,
            'request_time': request_time,
            'priority': priority(previous_jobs, index),
            **job,
        } for index, job in enumerate(jobs)
    ]
    for prepared_job in prepared_jobs:
        table.put_item(Item=convert_floats_to_decimals(prepared_job))
    return prepared_jobs