We currently presume that PKs can be ignored and will be auto-populated by the DB. Although this often works, there are plenty of cases (see, for example, the OMOP domain.domain_id column, which is a VARCHAR) where we need to specify one.
We may need to inspect each PK column to work out whether it will be auto populated and, if not, choose a unique random value for it.