Specifically, it adds an address into the wallet.

Easy to test now thanks to https://github.com/bitcoin/bitcoin/pull/14410
```
diff --git a/test/functional/wallet_importmulti.py b/test/functional/wallet_importmulti.py
index 9ba6860..bff37b2 100755
--- a/test/functional/wallet_importmulti.py
+++ b/test/functional/wallet_importmulti.py
@@ -95,6 +95,7 @@ class ImportMultiTest(BitcoinTestFramework):
         assert_equal(address_assert['iswatchonly'], True)
         assert_equal(address_assert['ismine'], False)
         assert_equal(address_assert['timestamp'], timestamp)
+        assert_equal(address_assert['ischange'], True)
 
         # ScriptPubKey + internal + label
         self.log.info("Should not allow a label to be specified when internal is true")
```

throw JSONRPCError(RPC_INVALID_PARAMETER, "More than one key given for one single-key address");
            }
            CPubKey pubkey;
            if (keys.size()) {
                pubkey = DecodeSecret(keys[0].get_str()).GetPubKey();
            }
            if (pubKeys.size()) {
                const std::string& strPubKey = pubKeys[0].get_str();
                if (!IsHex(strPubKey)) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey must be a hex string");
                }
                std::vector<unsigned char> vData(ParseHex(pubKeys[0].get_str()));
                CPubKey pubkey_temp(vData.begin(), vData.end());
                if (pubkey.size() && pubkey_temp != pubkey) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Private key does not match public key for address");
                }
                pubkey = pubkey_temp;
            }
            if (pubkey.size() > 0) {
                if (!pubkey.IsFullyValid()) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Pubkey is not a valid public key");
                }
                
                std::vector<CTxDestination> destinations = GetAllDestinationsForKey(pubkey);
                if (std::find(destinations.begin(), destinations.end(), dest) == destinations.end()) {
                    throw JSONRPCError(RPC_INVALID_ADDRESS_OR_KEY, "Key does not match address destination");
                }
                
                CScript scriptRawPubKey = GetScriptForRawPubKey(pubkey);
                if (::IsMine(*pwallet, scriptRawPubKey) == ISMINE_SPENDABLE) {