The first approach with the .Add() is used when the entity model is disconnected (not tracked) from the DbContext and needs to be added to the DbContext before it can be saved. This is a common pattern in web development.
The second method is used when the DbContext was queried to fill the entity. Therefore the entity is being tracked. SaveChangesAsync() saves all entities that have changes.
Please see the Entity Framework 6.0 official documentation.
Change Tracking in EF Core
Working with Nullable Reference Types