diff --git a/keyring/backend.py b/keyring/backend.py
index <HASH>..<HASH> 100644
--- a/keyring/backend.py
+++ b/keyring/backend.py
@@ -232,9 +232,9 @@ class SchemeSelectable:
         KeypassXC=dict(username='UserName', service='Title'),
     )
 
-    def _query(self, service, username):
+    def _query(self, service, username=None, **base):
         scheme = self.schemes[self.scheme]
-        return (
+        return dict(
             {
                 scheme['username']: username,
                 scheme['service']: service,
@@ -242,5 +242,6 @@ class SchemeSelectable:
             if username
             else {
                 scheme['service']: service,
-            }
+            },
+            **base,
         )
diff --git a/keyring/backends/SecretService.py b/keyring/backends/SecretService.py
index <HASH>..<HASH> 100644
--- a/keyring/backends/SecretService.py
+++ b/keyring/backends/SecretService.py
@@ -86,10 +86,7 @@ class Keyring(backend.SchemeSelectable, KeyringBackend):
     def set_password(self, service, username, password):
         """Set password for the username of the service"""
         collection = self.get_preferred_collection()
-        attributes = dict(
-            self._query(service, username),
-            application=self.appid,
-        )
+        attributes = self._query(service, username, application=self.appid)
         label = "Password for '{}' on '{}'".format(username, service)
         with closing(collection.connection):
             collection.create_item(label, attributes, password, replace=True)
Allow _query to include other keys