Задача решена, код не прикрепится. Решил довольно быстро, но не понял ничего. Либо я слишком плохо понял тему многопоточности, либо либо... Мы же не создаём множества нитей, которые вызывают методы по работе с allPeople или, которые ещё как-то его изменяют. Вот условие и кусок кода, чтобы освежить память
package com.javarush.task.task17.task1711;

import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Locale;

/*
CRUD 2
*/

public class Solution {
    public static volatile List<Person> allPeople = new ArrayList<Person>();

    static {
        allPeople.add(Person.createMale("Иванов Иван", new Date()));  //сегодня родился    id=0
        allPeople.add(Person.createMale("Петров Петр", new Date()));  //сегодня родился    id=1
    }

    public static void main(String[] args) throws Exception {
        int id;
        String name;
        String sex;
        Date bd;

        SimpleDateFormat dateFormat = new SimpleDateFormat("dd/MM/yyyy", Locale.ENGLISH);

        switch (args[0]) {
            case ("-c"):
                synchronized (allPeople) {
                    for (int i = 1; i < args.length; i += 3) {
                        name = args[i];
                        sex = args[i + 1];
                        bd = dateFormat.parse(args[i + 2]);
                        create(name, sex, bd);
                    }
                }
                break;
            case ("-u"):
                synchronized (allPeople) {
                    for (int i = 1; i < args.length; i += 4) {
                        id = Integer.parseInt(args[i]);
                        name = args[i + 1];
                        sex = args[i + 2];
                        bd = dateFormat.parse(args[i + 3]);
                        update(id, name, sex, bd);
                    }
                }
                break;..........