It's already mentioned in the documentations:
Save and SaveAll will Insert if no record with Id exists, otherwise it Updates. Both take multiple items, optimized to perform a single read to check for existing records and are executed within a sinlge transaction.
For Insert operation, it's pretty straighforward, there's nothing special in that functions.
So, Use Insert when you know there's no duplicated key in your records, otherwise use save method.
If you want to retrieve the LastInsertId, with Insert method, you need to specify the [AutoIncrement] on your POCO.
UPDATE: When you set your IDbConnectionFactory using Singelton With Lazy< T > implementation, it seems the LastInsertId will not working. so just use lock or static implementation.