To update you have to use PUT.

The best way of updating is to first read the original by using GET, then make your changes to existing fields and add new by creating a new object in fdef array and the call a PUT /definition/table/tablename to the server.

var tdf = {
    "tdf": {
        "fdef": [
                "derived": "sequence from 00001",
                "escname": "ID",
                "hasindex": "yes",
                "isreqired": "yes",
                "isunique": "yes",
                "isvirtual": "no",
                "length": 5,
                "name": "ID",
                "preventedit": "yes",
                "readsec": "Low3",
                "type": "text",
                "writesec": "Low3"
..... more of the same
        "tablecreatesecurity": "Medium3",
        "tabledeletesecurity": "Medium3",
        "tabledopreservedataonmodify": true,
        "tablemodifysecurity": "Medium3",
        "tableviewsecurity": "Low3",
var tname="NewTest";
var options = {
    url: "/definition/table/" + tname + "/",
    type: 'PUT',
    data: JSON.stringify(tdf),
    if (jdata.result == 'ok'){
        // Do what you need to do after update

Ex. of updating a table by javascript in web page using jquery.