<SYSTEM_TASK:>
Solve the following problem using Python, implementing the functions described below, one line at a time
<END_TASK>
<USER_TASK:>
Description:
 def cli(env, abuse, address1, address2, city, company, country, firstname, lastname, postal, public, state):
 """Edit the RWhois data on the account."""

    mgr = SoftLayer.NetworkManager(env.client)

    update = {
        'abuse_email': abuse,
        'address1': address1,
        'address2': address2,
        'company_name': company,
        'city': city,
        'country': country,
        'first_name': firstname,
        'last_name': lastname,
        'postal_code': postal,
        'state': state,
        'private_residence': public,
    }

    if public is True:
        update['private_residence'] = False
    elif public is False:
        update['private_residence'] = True

    check = [x for x in update.values() if x is not None]
    if not check:
        raise exceptions.CLIAbort(
            "You must specify at least one field to update.")

    mgr.edit_rwhois(**update)