Sometimes, a package will not have a download_url. This is going to be a common case when importing SBOM. We should guess/infer download_url optionally, as well as other information to enrich a package we can get given a PURL.
This could be done through the PurlDB.