Yes, that is correct. Part | GoJS API
The problem is that when setting the individual Part.isSelected property on various Parts, how could the system know when to raise the “ChangingSelection” DiagramEvent and when to raise the “ChangedSelection” DiagramEvent?
You can call Diagram.select or Diagram.selectCollection or Diagram.clearSelection, which will raise those DiagramEvents. Also, various commands and tools raise those events.