:param plugin_data: <dict> dict matching Plugin()
    :param verify_plugin: <bool>
    :param conn: <rethinkdb.DefaultConnection>
    :return: <dict> rethinkdb insert response value

def create_plugin(plugin_data,
                  verify_plugin=True,
                  conn=None):
    """
    :param plugin_data: <dict> dict matching Plugin()
    :param verify_plugin: <bool>
    :param conn: <rethinkdb.DefaultConnection>
    :return: <dict> rethinkdb insert response value
    """
    assert isinstance(plugin_data, dict)
    if verify_plugin and not verify(plugin_data, Plugin()):
        raise ValueError("Invalid Plugin entry")
    current = find_plugin(plugin_data[SERVICE_KEY], SERVICE_KEY, conn)
    if not current:
        success = RPC.insert(plugin_data,
                             conflict="update").run(conn)
    else:
        success = MOCK_ERROR_DICT
        error_msg = DUPLICATE_SERVICE_STRING.format(plugin_data[SERVICE_KEY])
        MOCK_ERROR_DICT[FIRST_ERROR] = error_msg
    return success