Is the Internal Solution for Bucket List Wrong?

This is the Internal Solution for The Bucket List Problem:

import java.io.*;
import java.util.*;

public class TheBucketList2 {
	static final int maxTime = 1000;

	public static void main (String[] args) throws IOException {
		Kattio io = new Kattio("blist");
		int n = io.nextInt();

		int[] startTimes = new int[n + 1];
		int[] endTimes = new int[n + 1];
		int[] bucketsNeeded = new int[n + 1];

		// these track when the cows start
		int[] cowStart = new int[maxTime + 1];
		int[] cowEnd = new int[maxTime + 1];

		for (int x = 1; x <= n; x++) {
			startTimes[x] = io.nextInt();
			endTimes[x] = io.nextInt();
			bucketsNeeded[x] = io.nextInt();

			cowStart[startTimes[x]] = x;
			cowEnd[endTimes[x]] = x;
		}

		int maxBuckets = 0;
		int countBuckets = 0;

		for (int t = 1; t <= 1000; t++) {
			// is a start, increase the bucket count
			if (cowStart[t] > 0) {
				countBuckets += bucketsNeeded[cowStart[t]];
			}
			
			// keep track of the maximum buckets needed at any time
			maxBuckets = Math.max(maxBuckets, countBuckets);
			
			// is an end, decrease the bucket count
			if (cowEnd[t] > 0) {
				countBuckets -= bucketsNeeded[cowEnd[t]];
			}
		}

		io.println(maxBuckets);
		io.close();
	}
}	

Can someone help me understand how this works? I tried running it and adding print statements to see what it is doing. the part I am having difficulty with is understanding is this part:

for (int t = 1; t <= 1000; t++) {
			// is a start, increase the bucket count
			if (cowStart[t] > 0) {
				countBuckets += bucketsNeeded[cowStart[t]];
			}
			
			// keep track of the maximum buckets needed at any time
			maxBuckets = Math.max(maxBuckets, countBuckets);
			
			// is an end, decrease the bucket count
			if (cowEnd[t] > 0) {
				countBuckets -= bucketsNeeded[cowEnd[t]];
			}
		}

How is this working? Wouldnt cows that begin milking at the same time be overridden in the cowStart and cowEnd arrays? I tried running this code with cow processes that start at the same time and I got the wrong output.

Input:

5
4 10 1
8 13 3
2 6 2
2 4 2
4 7 2

Output:

4

From the problem statement:

To simplify his job, FJ has made sure that at any given moment in time, there is at most one cow whose milking is starting or ending (that is, the sisi’s and titi’s are all distinct).

Thank you so much!
I read:

Several cows might end up being milked at the same time

and assumed that meant the same si’s.