async def METHOD_NAME(self):
    """Signs collections if they have not been signed with key."""
    tasks = []
    # Filter out any content that already has a signature with pubkey_fingerprint
    current_signatures = CollectionVersionSignature.objects.filter(
        pubkey_fingerprint=self.signing_service.pubkey_fingerprint
    )
    new_content = self.content.exclude(signatures__in=current_signatures)
    ntotal = await sync_to_async(new_content.count)()
    nmsg = _("Signing new CollectionVersions")
    async with ProgressReport(message=nmsg, code="sign.new.signature", total=ntotal) as p:
        self.progress_report = p
        async for collection_version in sync_to_async_iterable(new_content.iterator()):
            tasks.append(asyncio.create_task(self.sign_collection_version(collection_version)))
        await asyncio.gather(*tasks)
    # Add any signatures already present in Pulp if part of content list
    present_content = current_signatures.filter(signed_collection__in=self.content).exclude(
        pk__in=self.repos_current_signatures
    )
    ptotal = await sync_to_async(present_content.count)()
    pmsg = _("Adding present CollectionVersionSignatures")
    async with ProgressReport(message=pmsg, code="sign.present.signature", total=ptotal) as np:
        async for signature in sync_to_async_iterable(present_content.iterator()):
            await np.aincrement()
            await self.put(DeclarativeContent(content=signature))