Yes exactly.
You can extend the table with code quite easily. I tested it starting with a small table like so
Name.....Gender.....Amount
Bob............M....................1
Lynne.........F....................2
Amy............F....................3
Hannah......F....................4
Archie.........M...................5
I then used this code to rebuild it with an extra column and an extra row
Dim rng As Range
Set rng = ActiveSheet.ListObjects(1).DataBodyRange
Set rng = rng.Resize(rng.Rows.Count + 1, rng.Columns.Count + 1)
rng.Value = [{"Bob","M",1,"Y";"Lynne","F",2,"Y";"Amy","F",3,"Y";"Hannah","F",4,"Y";"Archie","M",5,"Y";"Sita","F",6,"N"}]
ActiveSheet.ListObjects(1).Resize rng.Offset(-1, 0).Resize(rng.Rows.Count + 1) 'include header row
ActiveSheet.ListObjects(1).HeaderRowRange.Value = Array("Name", "Gender", "Amount", "ID")
and we ended up with a table like so
Name.....Gender.....Amount.....ID
Bob............M....................1......Y
Lynne.........F....................2......Y
Amy............F....................3......Y
Hannah......F....................4......Y
Archie.........M...................5......Y
Sita............F.....................6.....N
Obviously your code would need to be smarter about calculating the size, but it is definitely doable.